#include <mips/regdef.h>
#include <sys/syscall.h>

#define STD_IN 0
#define STD_OUT 1
#define STD_ERROR 2
#define TAM_BUFFER 400
#define TAM_BUFFER_AUX 10
#define FIN_DE_ARCHIVO 0

.data 
pibes: .asciiz "Pibes\n"
buffer: .space TAM_BUFFER #un array de TAM_BUFFER elementos

.text
.align 2
.globl main
.ent main

main:
.frame $fp,48,ra
.set noreorder
.cpload t9
.set reorder
subu sp,sp,48
.cprestore 32
sw ra,44(sp)
sw $fp,40(sp)
move $fp,sp


#preparo llamada al read
mama:
li t1,FIN_DE_ARCHIVO


#t5 contador
move t5 ,zero
while:
li a0,STD_IN #fileDescriptor STDIN
la a1,buffer #Puntero al buffer
li a2,1  #tamano a leer
jal read
addu t5,v0,t5
rojo: 
la t4,buffer #guardo la posicion de memoria del buffer , su comienzo.
azul: 
addu t2,t4,v0 # meto la direccion del ultimo caracter
amarillo: 
subu t2, t2, 1 #movernos a la pos -1
hola: lb t3,0(t2) # levanto el ultimo byte del buffer
bne v0,a2,eof #comparo el ultimo caracter leido a ver si es fin de 
b while


#preparo la llamada al write
li a0,STD_OUT #fileDescriptor STOUT
la a1,buffer #Buffer que tiene que escribir
li a2,TAM_BUFFER_AUX # cantidad de bytes a escribir
jal write




eof:
move v0, zero
move sp,$fp
lw ra,44(sp)#recupero ra
lw $fp,40(sp)
addu sp,sp,48
j ra # vuelvo al sistema operativo.

.end main
